package Capa_Presentacion;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.faces.context.FacesContext;
import javax.faces.event.ValueChangeEvent;

import Capa_Datos.CD_Curso;
import Capa_Datos.CD_Eap;
import Capa_Datos.CD_Horario;
import Capa_Datos.CD_Laboratorio;
import Capa_Datos.CD_Software;
import Capa_Negocio.CN_ImplGeneracionHorarios;
import Capa_Negocio.CN_ImplHistorialServicio;


public class CP_GeneracionHorarios {
	int valor, valor2;
	List<CD_Eap> listaEap;
	List<CD_Curso> listaCursos;
	List<CD_Horario> listaHorarios;
	List<CD_Laboratorio> listaLaboratorios;
	CD_Horario selectedHorario;
	int selectedLaboratorio;
	
	List<CD_Horario> listaHorarioLunes;
	List<CD_Horario> listaHorarioMartes;
	List<CD_Horario> listaHorarioMiercoles;
	List<CD_Horario> listaHorarioJueves;
	List<CD_Horario> listaHorarioViernes;
	List<CD_Horario> listaHorarioSabado;
	
	
	
	
	
	public List<CD_Laboratorio> getListaLaboratorios() {
		return listaLaboratorios;
	}

	public void setListaLaboratorios(List<CD_Laboratorio> listaLaboratorios) {
		this.listaLaboratorios = listaLaboratorios;
	}

	public int getSelectedLaboratorio() {
		return selectedLaboratorio;
	}

	public void setSelectedLaboratorio(int selectedLaboratorio) {
		this.selectedLaboratorio = selectedLaboratorio;
	}

	public CN_ImplHistorialServicio getCn_historial() {
		return cn_historial;
	}

	public void setCn_historial(CN_ImplHistorialServicio cn_historial) {
		this.cn_historial = cn_historial;
	}

	public CN_ImplGeneracionHorarios getCn_horarios() {
		return cn_horarios;
	}

	public void setCn_horarios(CN_ImplGeneracionHorarios cn_horarios) {
		this.cn_horarios = cn_horarios;
	}

	CN_ImplHistorialServicio cn_historial;
	CN_ImplGeneracionHorarios cn_horarios;

    public CP_GeneracionHorarios() {

		
		listaHorarioLunes = new ArrayList<CD_Horario>();
		listaHorarioMartes = new ArrayList<CD_Horario>();
		listaHorarioMiercoles = new ArrayList<CD_Horario>();
		listaHorarioJueves = new ArrayList<CD_Horario>();
		listaHorarioViernes = new ArrayList<CD_Horario>();
		listaHorarioSabado = new ArrayList<CD_Horario>();
    	
    	
    	cn_historial = new CN_ImplHistorialServicio();
    	cn_horarios = new CN_ImplGeneracionHorarios();
    	listaEap= new ArrayList<CD_Eap>();    	
    	listaEap= cn_historial.getListaEap();
    	listaLaboratorios = new ArrayList<CD_Laboratorio>();
    	listaCursos = new ArrayList<CD_Curso>();
    	listaHorarios = new ArrayList<CD_Horario>();
    	selectedHorario= new CD_Horario();
    	
    	listaLaboratorios = cn_horarios.cargarLaboratoriosDisponibles();
    	
    }
    
    public List<CD_Horario> getListaHorarioLunes() {
		return listaHorarioLunes;
	}




	public void setListaHorarioLunes(List<CD_Horario> listaHorarioLunes) {
		this.listaHorarioLunes = listaHorarioLunes;
	}




	public List<CD_Horario> getListaHorarioMartes() {
		return listaHorarioMartes;
	}




	public void setListaHorarioMartes(List<CD_Horario> listaHorarioMartes) {
		this.listaHorarioMartes = listaHorarioMartes;
	}




	public List<CD_Horario> getListaHorarioMiercoles() {
		return listaHorarioMiercoles;
	}




	public void setListaHorarioMiercoles(List<CD_Horario> listaHorarioMiercoles) {
		this.listaHorarioMiercoles = listaHorarioMiercoles;
	}




	public List<CD_Horario> getListaHorarioJueves() {
		return listaHorarioJueves;
	}




	public void setListaHorarioJueves(List<CD_Horario> listaHorarioJueves) {
		this.listaHorarioJueves = listaHorarioJueves;
	}




	public List<CD_Horario> getListaHorarioViernes() {
		return listaHorarioViernes;
	}




	public void setListaHorarioViernes(List<CD_Horario> listaHorarioViernes) {
		this.listaHorarioViernes = listaHorarioViernes;
	}




	public List<CD_Horario> getListaHorarioSabado() {
		return listaHorarioSabado;
	}




	public void setListaHorarioSabado(List<CD_Horario> listaHorarioSabado) {
		this.listaHorarioSabado = listaHorarioSabado;
	}


	private List<CD_Horario> cargarHorario(String dia) {
		
		return cn_horarios.obtenerHorariosDia(dia);
	}
	
	

	public int getValor() {
		return valor;
	}

	public void setValor(int valor) {
		this.valor = valor;
	}

	public int getValor2() {
		return valor2;
	}

	public void setValor2(int valor2) {
		this.valor2 = valor2;
	}

	public List<CD_Eap> getListaEap() {
		return listaEap;
	}

	public void setListaEap(List<CD_Eap> listaEap) {
		this.listaEap = listaEap;
	}

	public List<CD_Curso> getListaCursos() {
		return listaCursos;
	}

	public void setListaCursos(List<CD_Curso> listaCursos) {
		this.listaCursos = listaCursos;
	}

	public List<CD_Horario> getListaHorarios() {
		return listaHorarios;
	}

	public void setListaHorarios(List<CD_Horario> listaHorarios) {
		this.listaHorarios = listaHorarios;
	}

	public CD_Horario getSelectedHorario() {
		return selectedHorario;
	}

	public void setSelectedHorario(CD_Horario selectedHorario) {
		this.selectedHorario = selectedHorario;
	}
    
	public void cambioCursos(ValueChangeEvent event){
		setListaCursos(cn_historial.obtenerListaCursos((Integer) event.getNewValue()));

	}
	
	public void verHorarios(){
		setListaHorarios(cn_horarios.obtenerListaHorarios(valor2));			
	}
	public void agregar_laboratorio(){
		cn_horarios.actualizarHorario(selectedHorario, selectedLaboratorio);
			listaHorarioLunes = cargarHorario("Lunes");
			listaHorarioMartes = cargarHorario("Martes");
			listaHorarioMiercoles = cargarHorario("Miercoles");
			listaHorarioJueves = cargarHorario("Jueves");
			listaHorarioViernes = cargarHorario("Viernes");
			listaHorarioSabado = cargarHorario("Sabado");
		
	}
	
	public void asignarVista(){
		 FacesContext contex = FacesContext.getCurrentInstance(); 		 
	 		try {
	 			
				contex.getExternalContext().redirect( "/ProyLabo/faces/view/GeneracionHorarios.xhtml" );
			} catch (IOException e) {
				
				e.printStackTrace();
			}
	}
	
	public void consultarVista(){
		 FacesContext contex = FacesContext.getCurrentInstance(); 		 
	 		try {
				listaHorarioLunes = cargarHorario("Lunes");
				listaHorarioMartes = cargarHorario("Martes");
				listaHorarioMiercoles = cargarHorario("Miercoles");
				listaHorarioJueves = cargarHorario("Jueves");
				listaHorarioViernes = cargarHorario("Viernes");
				listaHorarioSabado = cargarHorario("Sabado");
				contex.getExternalContext().redirect( "/ProyLabo/faces/view/consultarHorarios.xhtml" );
			} catch (IOException e) {
				
				e.printStackTrace();
			}
	}
	
	
  
}
